﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DotSpatial.Data;
using DotSpatial.Topology;

namespace HAGISV2
{
    public class HGMSSelectMFEventArgs:EventArgs
    {
        /// <summary>
        /// 编辑线上普通点用
        /// </summary>
        /// <param name="layerId"></param>
        /// <param name="shapes"></param>
        /// <param name="index"></param>
        /// <param name="newCoordinate"></param>
        public HGMSSelectMFEventArgs(string layerId, List< string> shapeIds,List< List< Coordinate>> newCoordinates)
        {
            this.layerId = layerId;
            this.NewCoordinates = newCoordinates;
            this.featureIds = shapeIds;            
        }

        ///// <summary>
        ///// 编辑普通节点和线上节点用
        ///// </summary>
        ///// <param name="layerId"></param>
        ///// <param name="shapes"></param>
        ///// <param name="newCoordinate"></param>
        //public HGMSSelectMFEventArgs(string layerId, List<string> shapeIds, Coordinate newCoordinate)
        //{
        //    this.layerId = layerId;
        //    this.NewCoordinate = newCoordinate;
        //    this.featureIds = shapeIds;            
        //}

        
        /// <summary>
        /// 删除点线面用
        /// </summary>
        /// <param name="layerId"></param>
        /// <param name="shapes"></param>
        public HGMSSelectMFEventArgs(string layerId, List<string> shapeIds)
        {
            this.layerId = layerId;
            this.featureIds = shapeIds;
        }



        private List<List<Coordinate>> _newCoordinates;

        public List<List<Coordinate>> NewCoordinates
        {
            get { return _newCoordinates; }
            set { _newCoordinates = value; }
        }
        

        //private Coordinate _newCoordinate;

        //public Coordinate NewCoordinate
        //{
        //    get { return _newCoordinate; }
        //    set { _newCoordinate = value; }
        //}








        ///// <summary>
        ///// 操作概念层时的事件类
        ///// </summary>
        ///// <param name="layerId"></param>
        ///// <param name="featureId"></param>
        ///// <param name="feature">若为删除feature操作，该项为null</param>
        //public HGMSSelectMFEventArgs(string layerId,string featureId,Feature feature,bool isCoordinateEditMoveNotEditDelete)
        //{
        //    this.isCoordinateEditMoveNotEditDelete = isCoordinateEditMoveNotEditDelete;
        //    this.layerId = layerId;
        //    this.featureId = featureId;
        //    this.newFeature = feature;
        //}

        ///// <summary>
        ///// 操作概念层时的事件类
        ///// </summary>
        ///// <param name="layerId"></param>
        ///// <param name="featureIds">合并或分割操作的feature的ID集合</param>
        ///// <param name="features">合并或分割操作涉及的feature集合</param>
        ///// <param name="isUnion">ture为合并操作，false为分割操作</param>
        //public HGMSSelectMFEventArgs(string groupName,string layerId, List<string> featureIds, List<Feature> features,bool isUnion)
        //{
        //    this.groupName = groupName;
        //    this.layerId = layerId;
        //    this.featureIds = featureIds;
        //    this.features = features;
        //    this.isUnion = isUnion;
        //}

        string groupName;
        /// <summary>
        /// 所属分组名
        /// </summary>
        public string GroupName
        {
            get { return groupName; }
            set { groupName = value; }
        }

        List<string> featureIds;
        /// <summary>
        /// 需修改的feature的Id集合
        /// </summary>
        public List<string> FeatureIds
        {
            get { return featureIds; }
            set { featureIds = value; }
        }

        //List<Feature> features;
        ///// <summary>
        ///// 需修改的feature
        ///// </summary>
        //public List<Feature> Features
        //{
        //    get { return features; }
        //    set { features = value; }
        //}

        //bool isUnion;
        ///// <summary>
        ///// ture为合并操作，false为分割操作
        ///// </summary>
        //public bool IsUnion
        //{
        //    get { return isUnion; }
        //    set { isUnion = value; }
        //}


        string layerId;

        public string LayerId
        {
            get { return layerId; }
            set { layerId = value; }
        }

        //string featureId;

        //public string FeatureId
        //{
        //    get { return featureId; }
        //    set { featureId = value; }
        //}

        //Feature newFeature;

        //public Feature NewFeature
        //{
        //    get { return newFeature; }
        //    set { newFeature = value; }
        //}

        //bool isCoordinateEditMoveNotEditDelete;
        ///// <summary>
        ///// 标志编辑图形时是编辑点还是删除点
        ///// </summary>
        //public bool IsCoordinateEditMoveNotEditDelete
        //{
        //    get { return isCoordinateEditMoveNotEditDelete; }
        //    set { isCoordinateEditMoveNotEditDelete = value; }
        //}
    }
}
